SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCMOVI_BANC_D06]    
/*-------------------------------------------------------*/    
/*---Empresa              : OFISIS S.A.                --*/    
/*---Cliente              : OFISIS                 --*/    
/*---Sistema              : Tesoreria                  --*/    
/*---M÷dulo               : Empresa                    --*/    
/*---Programa             : Anulaci¸n                  --*/    
/*---                       Movimiento Bancos (Libre)  --*/    
/*---                       (Egresos)                  --*/    
/*---Script               : tcmovi_b.sql               --*/    
/*---Nombre SP            : SP_TCMOVI_BANC_D06         --*/    
/*---Desarrollado por     : Javier Flores A.           --*/    
/*---Fecha Creaci÷n       : 06/07/1999                 --*/    
/*---Base Datos           : Microsoft Sql Server       --*/    
/*---Versi÷n              : 7.0                        --*/    
/*---Invoca a SP          :                            --*/    
/*-------------------------------------------------------*/    
  /*-------------------------------------------------------*/      
/*---ModIficado 1 por     :Maribel Julca Rodriguez     --*/      
/*---Fecha ModIficaci,n   :22/01/2005                  --*/       
/*---Detalle ModIficaci,n :ingreso de campos CO_USUA_CREA, CO_USUA_MODI --*/      
/*-------------------------------------------------------*/        
/*-------------------------------------------------------*/    
/*---Comentarios                                       --*/    
/*---                                                  --*/    
/*---                                                  --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Drop Proc SP_TCMOVI_BANC_D06                      --*/    
/*---Grant all on SP_TCMOVI_BANC_D06 to public         --*/     
/*---SP_TCMOVI_BANC_D06                                --*/    
/*-------------------------------------------------------*/    
 @ISCO_EMPR TD_VC_002,     
 @ISCO_USUA_MODI TD_VC_008_USUA,    
 @ISCO_BANC TD_VC_003,     
 @ISNU_CNTA_BANC TD_VC_020,    
 @ISAA_BNCO TD_VC_004,     
 @ISMM_BNCO TD_VC_002,     
 @ISTI_MOVI_BANC TD_VC_001,      
 @ISNU_COMP_BANC TD_VC_008,     
 @INIM_MOVI TD_NU_016_004,    
 @ISCO_TIPO_OPER TD_VC_003,    
 @IDFE_ANUL TD_DT_001,    
 @ISDE_OBSE TD_VC_100,    
 @ISNU_SOLI TD_VC_010,
 @ISCO_UNID_CNTB TD_VC_003
 As  
Declare    
    
    @VSCO_TIPO_EGAN TD_VC_003,       
    @VSST_GEAS_ANUL TD_VC_001,    
    @VSCO_TIPO_OPE1 TD_VC_003,  

/* a) Variables de extorno */          
 @VSCO_UNID_CONC TD_VC_003,  --YA        
 @VDFE_OPER  TD_DT_001,      --YA        
 @OSNU_ASTO  TD_VC_010,      --YA        
 @VSCO_TIPO_INAN TD_VC_003,          
 @VSST_INTE_BACH TD_VC_001,  --YA        
 @VSST_ASTO_RESU TD_VC_001,  --YA        
 @VSTI_OPNI_CARG TD_VC_001,  --YA        
 @VSTI_OPNI_ABON TD_VC_001   --YA           
    
 Begin Tran SP_TCMOVI_BANC_D06    
    
      SELECT @VSCO_TIPO_EGAN = CO_TIPO_OPEG, @VSST_GEAS_ANUL = ST_GEAS_ANUL ,
             @VSTI_OPNI_CARG = CO_TIPO_OPEG, @VSTI_OPNI_ABON = CO_TIPO_OPER , @VSST_INTE_BACH = ST_INTE_BACH     
      FROM   TMPARA_TESO     
      WHERE  CO_EMPR = @ISCO_EMPR    
    
      If @VSST_GEAS_ANUL = 'N'    
         Select @VSCO_TIPO_OPE1 = @VSCO_TIPO_EGAN    
      Else        
        Select @VSCO_TIPO_OPE1 = @ISCO_TIPO_OPER    

-- Se optiene la fecha de operacion para --E X T O R N O--  --   

Select @VDFE_OPER = FE_OPER,  
   @VSCO_UNID_CONC = CO_UNID_CONC  
 From   TCMOVI_BANC      
 Where  CO_EMPR = @ISCO_EMPR      
 And    CO_UNID_CONC = @ISCO_UNID_CNTB
 And    CO_BANC = @ISCO_BANC      
 And    NU_CNTA_BANC = @ISNU_CNTA_BANC      
 And    AA_BNCO = @ISAA_BNCO      
 And    MM_BNCO = @ISMM_BNCO      
 And    TI_MOVI_BANC = @ISTI_MOVI_BANC      
 And    NU_COMP_BANC = @ISNU_COMP_BANC   
    
-- Si la Fecha de Anulacion es Mayor --E X T O R N O--  --         
          
If  @VDFE_OPER < @IDFE_ANUL And Month( @VDFE_OPER ) != Month( @IDFE_ANUL ) 
      Update  TCMOVI_BANC    
      Set     TI_SITU = 'EXT',     
              CO_TIPO_OPER =  @VSCO_TIPO_OPE1,    
              DE_OBSE = @ISDE_OBSE,    
              CO_USUA_MODI = @ISCO_USUA_MODI,    
              FE_USUA_MODI = GETDATE()    
      Where   CO_EMPR = @ISCO_EMPR    
      And     CO_UNID_CONC = @ISCO_UNID_CNTB
      And     CO_BANC = @ISCO_BANC     
      And     NU_CNTA_BANC = @ISNU_CNTA_BANC     
      And     AA_BNCO = @ISAA_BNCO    
      And     MM_BNCO = @ISMM_BNCO    
      And     TI_MOVI_BANC = @ISTI_MOVI_BANC     
      And     NU_COMP_BANC = @ISNU_COMP_BANC    

Else
      Update  TCMOVI_BANC    
      Set     TI_SITU = 'ANU',     
              CO_TIPO_OPER =  @VSCO_TIPO_OPE1,    
              DE_OBSE = @ISDE_OBSE,    
              CO_USUA_MODI = @ISCO_USUA_MODI,    
              FE_USUA_MODI = GETDATE()    
      Where   CO_EMPR = @ISCO_EMPR    
      And     CO_UNID_CONC = @ISCO_UNID_CNTB
      And     CO_BANC = @ISCO_BANC     
      And     NU_CNTA_BANC = @ISNU_CNTA_BANC     
      And     AA_BNCO = @ISAA_BNCO    
      And     MM_BNCO = @ISMM_BNCO    
      And     TI_MOVI_BANC = @ISTI_MOVI_BANC     
      And     NU_COMP_BANC = @ISNU_COMP_BANC     
    
      If @@error <> 0    
         Begin    
           Rollback Tran    
           Return    
         End    
    
    
      /* Actualizando la Tabla de Solicitudes a Caja a Situaci©n APROBADAS */    
    
      Update TMSOLI_CABA    
      Set TI_SITU = 'APR', FE_LIQU = NULL,     
          CO_USUA_MODI = @ISCO_USUA_MODI, FE_USUA_MODI = getdate()             
      Where CO_EMPR = @ISCO_EMPR    
      And   NU_SOLI = @ISNU_SOLI    
    
      If @@error <> 0    
      Begin    
          Rollback tran    
          Return    
      End  



/**-----Verifica si se genera asientos Resumidos ------*/               
  Select @VSST_ASTO_RESU = Max(IsNull( t1.ST_ASTO_RESU, 'S'))                    
  From   TMOPRC_RESU t1 , TDTIPO_OPER t2                    
  Where  t2.CO_EMPR = @ISCO_EMPR And                    
  t2.CO_TIPO_OPER = @ISCO_TIPO_OPER And                    
  t1.CO_EMPR = t2.CO_EMPR And                    
  t1.CO_OPRC_CNTB = t2.CO_OPRC_CNTB               
             
 /**-----Fin de la Validacion de Asientos Resumidos e Interfase en Bach ------*/               
  If @VSST_INTE_BACH = 'N' AND @VSST_ASTO_RESU = 'N' AND              
     @ISCO_TIPO_OPER != @VSTI_OPNI_CARG AND @ISCO_TIPO_OPER != @VSTI_OPNI_ABON And              
     @VDFE_OPER < @IDFE_ANUL And Month( @VDFE_OPER ) != Month( @IDFE_ANUL )              
  Begin              
 /*-----Optiene el Numero de Asiento -----*/                  
    EXEC SP_TTULTI_ASTO_Q01 @ISCO_EMPR, @ISCO_USUA_MODI, @VSCO_UNID_CONC, @VSCO_TIPO_OPE1, @IDFE_ANUL, @OSNU_ASTO OUTPUT      
          
    IF (@@ERROR != 0)                    
    Begin                
      RollBack Tran  SP_TTAMAR_NCCA_D01              
      Return                
    End               
             
  End                    
 /**/                   
    
      Insert into TTBANC_ANUL (CO_EMPR, CO_BANC, NU_CNTA_BANC, AA_BNCO, MM_BNCO, TI_MOVI_BANC, NU_COMP_BANC,     
      CO_TIPO_OPER, FE_ANUL, NU_ASTO, ST_CONT, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI, CO_UNID_CONC)
      Values (@ISCO_EMPR, @ISCO_BANC, @ISNU_CNTA_BANC, @ISAA_BNCO, @ISMM_BNCO, @ISTI_MOVI_BANC, @ISNU_COMP_BANC,     
              @VSCO_TIPO_OPE1,  @IDFE_ANUL, @OSNU_ASTO, 'N', @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE(), 
@ISCO_UNID_CNTB)    
    
      If @@error <> 0    
         Begin    
           Rollback tran    
      Return 
         End    
    
Commit Tran    
    
/*------------------------- Fin ------------------------------*/


GO
